package co.edu.javeriana.konigsberg.xavier.dao;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityTransaction;

import co.edu.javeriana.konigsberg.xavier.dao.desc.ProgramaDepartamentoFacultadDAOLocal;
import co.edu.javeriana.konigsberg.xavier.entidad.ProgramaDepartamentoFacultad;

@Stateless
public class ProgramaDepartamentoFacultadDAO extends DAO<ProgramaDepartamentoFacultad> implements ProgramaDepartamentoFacultadDAOLocal{

	@Override
	public List<ProgramaDepartamentoFacultad> obtenerListaPorPrograma(BigInteger idPrograma) {
		return (List<ProgramaDepartamentoFacultad>) em.createNamedQuery("ProgramaDepartamentoFacultad.findByProgram").setParameter("idPrograma", idPrograma).getResultList();
	}
	
	
	@Override
	public List<ProgramaDepartamentoFacultad> obtenerLista() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<ProgramaDepartamentoFacultad> obtenerListaPorPadre(
			BigInteger idPadre) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ProgramaDepartamentoFacultad obtenerPorId(BigInteger id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void guardar(ProgramaDepartamentoFacultad e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void actualizar(ProgramaDepartamentoFacultad e) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void guardar(List<ProgramaDepartamentoFacultad> departamentoFacultads) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		for (ProgramaDepartamentoFacultad programaDepartamentoFacultad : departamentoFacultads) {
			em.persist(programaDepartamentoFacultad);
		}
		tx.commit();
		
		
	}


	@Override
	public void eliminarProgramaDepartamentoFacultad(BigInteger idPrograma) {
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.createNamedQuery("ProgramaDepartamentoFacultad.deleteByParent").setParameter("idPrograma", idPrograma).executeUpdate();
		tx.commit();
	}

}
